/**
 * 错误代码
 */
export const ErrorCodes = {
  DB_ERROR: 'DB_ERROR',
  VIDEO_NOT_FOUND: 'VIDEO_NOT_FOUND',
  TAG_NOT_FOUND: 'TAG_NOT_FOUND',
  INVALID_INPUT: 'INVALID_INPUT',
  FILE_ACCESS_ERROR: 'FILE_ACCESS_ERROR'
}

/**
 * 错误消息
 */
export const ErrorMessages = {
  [ErrorCodes.DB_ERROR]: '数据库操作失败',
  [ErrorCodes.VIDEO_NOT_FOUND]: '找不到视频记录',
  [ErrorCodes.TAG_NOT_FOUND]: '找不到标签记录',
  [ErrorCodes.INVALID_INPUT]: '输入参数无效',
  [ErrorCodes.FILE_ACCESS_ERROR]: '文件访问失败'
}

/**
 * 自定义错误类
 */
export class AppError extends Error {
  constructor(message, code = 'UNKNOWN_ERROR') {
    super(message)
    this.name = 'AppError'
    this.code = code
  }
}

/**
 * 统一错误处理函数
 */
export const handleError = (error) => {
  if (error instanceof AppError) {
    return ErrorMessages[error.code] || error.message
  }
  if (error instanceof Error) {
    return error.message
  }
  if (typeof error === 'string') {
    return error
  }
  return '发生未知错误'
}

/**
 * 创建错误消息
 */
export const createErrorMessage = (operation, error) => {
  const message = handleError(error)
  return `${operation}失败: ${message}`
} 